<?php
class Front_Model_DbTable_Produit extends Zend_Db_Table_Abstract
{
	protected $_name = 'produits';
	protected $_primary = 'id';
	
	protected $_referenceMap = array(
		// Relation (père fils)vers la table Catégories
		'categorie'=> array(
			'columns'=>array('categorie'),
			'refTableClass'=>'Admin_Model_DbTable_Categories',
			'refColumns'=>array('id')
			),
		'user'=> array(
			'columns'=> array('user_id'),
			'refTableClass'=>'Front_Model_DbTable_User',
			'refColumns'=> array('id')
			),
		);
	
	public function obtenirProduits($id)
	{
		$id = (int) $id;
		$row = $this->fetchRow('id ='. $id);
		if (! $row){
			throw new Exeption ("Impossible de trouver l'enregistrement $id");
		}
		return $row->toArray();
	}

	public function getAllProduit()
	{
		$select = $this->select();
		$select->FROM('produits', '*');
		$select->ORDER('date_creation DESC');		
		$result = $this->fetchAll($select);

		return $result;
		
	}
	
	public function getLatestsProduits()
	{
		$select = $this->select();
		$select->FROM('produits', '*');
		$select->ORDER('id DESC' );
		$select->LIMIT(9);
		
		$result = $this->fetchALL($select);
		return $result;
	}
	
	public function addProduit($name, $price, $qtt, $categorie, $description, $user_id)
	{
		$data = array(
				'name'=> $name,
				'prix' => $price,
				'quantite' => $qtt,
				'categorie' => $categorie,
				'description' => $description,
				'user_id' => $user_id,				
		);
		return $this->insert($data);
	}
	
// 	public function search($prix, $nom)
// 	{
// 		$prix = (int) $prix;
// 		$lettre = $nom[0];
// 		echo $lettre;		
// 		$select =  $this->select();
// 		$select->from('produits' , '*');
// 		$select->where('Prix < ?', $prix);
// 		$select->where('name LIKE ?',"$lettre%");
		
// 		$result = $this->fetchAll($select);
		
// 		if(!$result){
// 			echo "rien à afficher";
// 		}else{
// 			return $result;
// 		}
// 	}
	
	public function searchProduit($keyword)
	{	
		$select = $this->select();
		$select->from('produits', '*');
		$select->where('name LIKE ?', "%$keyword%");
		$result = $this->fetchAll($select);

		return $result;

	}
	//afficher les produits d'une categorie
	public function rubrique($id)
	{
		$id = (int)$id;
		$select = $this->select();
		$select->FROM('produits','*');
		$select->WHERE('categorie = ?', $id);
		$result = $this->fetchAll($select);

		return $result;		
	}
	//compte le nbre de clicks pour un produit
	public function updateLectureDb($id)
	{
		$select = $this->select();
		$select->FROM('produits', '*');
		$select->WHERE('id = ?', $id);
		$prod = $this->fetchRow($select);
		$lecture = $prod->lecture + 1;
		$prod->lecture = $lecture;
		$prod->save();

		return $prod;
	}
	//retourn les produits populaires
	public function populateProduit($limit = 5)
	{
		$select = $this->select();
		$select->FROM('produits','*');
		$select->WHERE('lecture >= ?', 'MAX(lecture)');
		$select->ORDER('lecture DESC');
		$select->LIMIT($limit);
		$result = $this->fetchAll($select);

		return($result);
	}
}